<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="rurple.css" type="text/css" />

<title>RUR-PLE-Lektionen</title>
</head>
<body>
<h2 class="title">Python lernen: Ein Kinderspiel mit RUR-PLE!</h2>

<h6>André Roberge, © 2004-2010</h6> 

<p>Hier findest du eine Liste aller Lektionen mit kurzen Inhaltsangaben.</p>

<h3 class="section">Teil 1. Willkommen in Reeborgs Welt.</h3>

<p>In diesem Teil beginnen wir unser Lernabenteuer in Reeborgs Welt.
Wir lernen, wie man einfache Computerprogramme schreibt.</p>

<ul>
<li><a href="intro/1-browser.htm">1. Der Browser</a><br/>
Diese Lektion beschreibt kurz den in RUR-PLE eingebauten Browser.</li>
<li><a href="intro/2-explore.htm">2. Reeborg erforscht seine Welt.</a><br/>
In dieser Lektion machst du dich mit Reeborgs Umgebung vertraut und
lernst, wie man Reeborg mit den Pfeiltasten der Tastatur bewegt.</li>
<li><a href="intro/3-first_program.htm">3. Das erste Programm</a><br/>
In dieser Lektion lernst du, was wir unter einem Computer-Programm verstehen
und stellen zwei Anweisungen für Reeborg vor: <code>move()</code> und
<code>turn_off()</code> (bewegen und abschalten).</li>
<li><a href="intro/4-errors.htm">4. Mit FeHLeRN umgehen</a><br/>
Wichtig in Python: Groß- und Kleinschreibung</li>
<li><a href="intro/5-comments.htm">5. Dein Kommentar? <i>Any comments?
</i></a><br/>
Wir lernen, in Programme Erläuterungen einzufügen, die nur für Menschen 
bestimmt sind, so genannte <em>Kommentare</em>. Dann übersetzen wir die 
Anweisungen für Reeborg in andere Sprachen. Dafür setzen wir erstmals
<i>Variablen</i> ein, auf die wir später noch näher eingehen werden.</li>
<li><a href="intro/6-left.htm">6. Reeborg biegt ab.</a><br/>
Wir lernen eine weitere Anweisung für Reeborg kennen:
<code>turn_left()</code> (Vierteldrehung nach links).</li>
<li><a href="intro/7-beepers.htm">7. Piepser</a><br/>
Wir lernen Piepser und die beiden letzten zwei Anweisungen kennen,
auf die Reeborg hört: <code>pick_beeper()</code> und
<code>put_beeper()</code> (Piepser aufheben und
Piepser absetzen).</li>
<li><a href="intro/8-bugs.htm">8. Verflixte Bugs!</a><br/>
Bug (sprich bak) heißt eigentlich Wanze, aber man nennt im Englischen auch
Fehler in Apparaten und Programmen Bugs.In dieser Lektion befassen
wir uns mit  Bugs in Programmen und erfahren, wie wir sie mit RUR-PLEs
Hilfe finden und beheben können.</li>
<li><a href="intro/9-walls.htm">9. Mauern bauen</a><br/>
Wir lernen, wie man in Reeborgs Welt Mauern baut und wieder entfernt.
Am Ende dieser Lektion gibt es ein paar knifflige Programmier-Übungen.</li>
</ul>

<h3 class="section">Teil 2. Reeborg kennt Python.</h3>
<p>Im zweiten Teil lernen wir die ersten Python-Schlüsselwörter
kennen. Wir erfahren, wie wir mit ihnen Reeborg in die Lage versetzen,
schwierigere Aufgaben zu bearbeiten, und wie sie uns das Programmieren
erleichtern.</p>

<ul>
<li><a href="intro/10-def.htm">10. Definitiv Wiederholungen vermeiden</a><br/>
In dieser Lektion begegnen wir dem ersten Schlüsselwort: <span class=
"pykeyword">def</span>.</li>
<li><a href="intro/11-repeat.htm">11. Noch mal! Wiederholungen vermeiden</a>
<br/>
Hier bringen wir Reeborg bei, Anweisungen automatisch zu wiederholen.</li>
<li><a href="intro/12-if.htm">12. Reeborg entscheidet.</a><br/>
In dieser Lektion lernen wir das Schlüsselwort <span class=
"pykeyword">if</span> (wenn) kennen .</li>
<li><a href="intro/13-else.htm">13. Reeborg entscheidet anders.</a><br/>
In dieser Lektion lernen wir das Schlüsselwort <span class=
"pykeyword">else</span> (sonst) kennen .</li>
<li><a href="intro/14-elif.htm">14. Reeborg entscheidet mal so, mal so.</a><br/>
In dieser Lektion geht es um die Schlüsselwörter <span class=
"pykeyword">elif</span> (oder wenn) und <span class=
"pykeyword">pass</span> (passen).</li>
<li><a href="intro/15-not.htm">15. Negativ, Reeborg!</a><br/>
In dieser Lektion verneinen wir mit dem Schlüsselwort <span class=
"pykeyword">not</span>.</li>
<li><a href="intro/16-while.htm">16. Solange bis Reeborg qualmt!</a><br/>
In dieser Lektion lassen wir Reeborg mit <span class=
"pykeyword">while</span> solange machen, wie wir wollen.</li>
<li><a href="intro/17-amazing1.htm">17. Überraschung! - Teil 1</a><br/>
Wir verwenden alles, was wir bislang gelernt haben, um eine Reihe von Aufgaben
zu lösen, und kommen zu einer überraschenden Schlussfolgerung.</li>
<li><a href="intro/18-amazing2.htm">18. Überraschung! - Teil 2</a><br/></li>
<li><a href="intro/19-amazing3.htm">19. Überraschung! - Teil 3</a><br/></li>
<li><a href="intro/20-amazing4.htm">20. Überraschung! - Teil 4</a><br/></li>
<li><a href="intro/21-amazing5.htm">21. Überraschung! - Teil 5</a><br/></li>
<li><a href="intro/22-rain.htm">22. Es regnet!</a><br/>
Hilf Reeborg die Fenster in seinem Haus zu schließen, damit es nicht
reinregnet.</li>
<li><a href="intro/23-trash.htm">23. Nach dem Sturm</a><br/>
Hilf Reeborg, seinen Hof aufzuräumen.</li>
<li><a href="intro/24-adding.htm">24. Reeborg lernt Addieren.</a><br/>
Wir lehren Reeborg, zwei Zahlen zusammenzuzählen. Nach dieser Lektion werden wir
Reeborgs Welt vorübergehend verlassen, um mehr über Python zu erfahren.</li>
</ul>

<h3 class="section">Teil 3. Python, der Interpreter</h3>
<p>Im dritten Teil befassen wir uns mit dem Python-Interpreter. Wir lernen auch
etwas über Zahlen, Zeichenfolgen, Listen, Tupel und Dictionaries
(Wörterbücher). Dieser Teil ist ähnlich wie eine normale Python-Übung für
Anfänger aufgebaut ... außer, daß wir uns weiter mit Reeborg amüsieren können!
</p>

<ul>
<li>
<a href="inter/25-interpreter.htm">25. Mit Python addieren
</a><br/>
In dieser Lektion erforschen wir, wie man mit Python Zahlen addiert, subtrahiert,
multipliziert, dividiert, etc..</li>
<li><a href="inter/26-interpreter2.htm">26. Wir interpretieren Schlüsselwörter
</a><br/>
In dieser Lektion erforschen wir einige Schlüsselwörter, die wir schon kennen,
und was der Python-Interpreter damit macht.</li>
<li><a href="inter/27-variables.htm">27. Variablen</a><br/> In dieser Lektion 
stellen wir das extrem wichtige Konzept der <i>Variablen</i> vor.</li>
<li><a href="inter/28-variables2.htm">28. Variablen und Funktionen</a><br/>
In dieser Lektion sehen wir, wie wir Funktionen und Variablen zusammen 
verwenden können.</li>
<li><a href="inter/29-strings.htm">29. Zeichen-Salami</a><br/>
In dieser Lektion lernen wir, wie Variablen Zeichenfolgen darstellen können.
Außerdem lernen wir <i>slicing</i> (in Scheiben schneiden) kennen.</li>
<li><a href="inter/30-dot.htm">30. Objektorientierte Programmierung:
Punkt-Schreibweise</a><br/>
In dieser Lektion erfahren wir etwas über die Punkt-Schreibweise, die in der
objektorientierten Programmierung häufig verwendet wird. Schließlich lernen
wir etwas Neues in Reeborgs Welt kennen.</li>
<li><a href="inter/31-global.htm">31. Global ist fatal.</a><br/>
Wir lernen das Schlüsselwort <span class="pykeyword">global</span>
kennen.</li>
<li><a href="inter/32-return.htm">32. Funktion, komm bald wieder!</a><br/>
Wir lernen das Schlüsselwort <span class="pykeyword">return</span>
kennen, mit dem wir noch nützlichere Funktionen schreiben können.</li>
<li><a href="inter/33-for.htm">33. Repeat verbirgt Schlüsselwörter.
</a><br/>
In dieser Lektion lernen wir die beiden Schlüsselwörter <span class=
"pykeyword">for</span> und <span class="pykeyword">in</span> kennen, auf die 
wir schon mal einen flüchtigen Blick geworfen haben.</li>
<li><a href="inter/34-lists.htm">34. Ein Rezept für Schokoladenschaumkuchen</a><br/>
Wir lernen die Liste <i>list</i> kennen, erfahren, wie wir alle
Methoden eines Objekts anzeigen können, lernen das neue Schlüsselwort
<span class="pykeyword">del</span> kennen und werfen noch einmal einen Blick
auf die Funktion <tt>range()</tt>.</li>
<li><a href="inter/35-dicts.htm">35. Merk's dir mit Python</a><br/>
Wir lernen das Dictionary (Wörterbuch) <i>dict</i> und die Funktion 
 <tt>str()</tt> kennen.</li>
<li><a href="inter/36-tuples.htm">36. Versteinerte Listen</a><br/>
Wir lernen das Tupel <i>tuple</i> kennen sowie den Unterschied zwischen
veränderlichen (<i>mutable</i>) und unveränderlichen (<i>immutable</i>)
Objekten kennen.</li>
<li><a href="inter/37-class.htm">37. Reeborg wird aufgemotzt.</a><br/>
Wir zeigen, wie man eine neue Klasse erzeugt, die von bestehenden Klasse erbt.</li>
<li><a href="inter/38-class2.htm">38. Ein Hauch von Klasse</a><br/>
Zwei weitere Vererbungsbeispiele in Reeborgs Welt.</li>
<li><a href="inter/39-import.htm">39. Erfinde das Rad nicht neu - importiere
es!</a><br/>
In dieser Lektion lernen wir, wie man Module importiert.</li>
<li><a href="inter/40-random.htm">40. Glücklich entkommen</a><br/>
Wir schauen uns zwei relativ einfache Programme an, die mit Zufallsdrehungen
und -Bewegungen einen Weg aus einem Labyrinth suchen. Das erste prüft, ob eine
Mauer im Weg steht, und bewegt Reeborg nur, wenn der Weg frei ist. Diese 
Strategie nennt sich <i>Guck bevor du springst</i> (englisch: <i>Look before you
leap</i>). Das zweite läßt Reeborg vor die Mauer laufen, fängt dann ein
Ausnahmesignal ab (englisch: <i>Exception</i>) und korrigiert Reeborgs
Bewegung. Diese Strategie heißt <i>Bitte besser um Verzeihung als um 
Erlaubnis</i> (englisch: <i>Better ask forgiveness than permission</i>). <br/>
Diese Lektion stellt die Schlüsselwörter <span class="pykeyword">try</span>,
<span class="pykeyword">except</span>, und <span class="pykeyword">raise</span>
vor.</li>
</ul>

<h3 class="section">Fortgeschrittene Lektionen</h3>
<p>Die folgenden Lektionen sind Einzelthemen, die nicht auf andere Lektionen
verweisen.  Sie sind als Startpunkte für weitere Erkundungen gedacht oder
nützlich für Lehrer.</p>

<ul>
<li><a href="advanced/41-fairy_tale.htm">41. Ein Robotermärchen</a><br/>
Eine Querschnittübung als Märchen verpackt.</li>
<li><a href="advanced/42-numbers.htm">42. Oktale, hexadezimale und binäre
Zahlen</a><br/>
In dieser Lektion werfen wir einen kurzen Blick auf oktale, hexadezimale und
binäre Zahlen.</li>
<li><a href="advanced/sorting.htm">43. Sortieren</a><br/>
Einige Vorschläge für Sortierübungen in Reeborgs Welt.</li>
<li><a href="advanced/44-fractions.htm">44. Brüche - Teil 1
</a><br/>Wir definieren Brüche und zeigen sie an.
</li>
<li><a href="advanced/45-fractions2.htm">45. Brüche - Teil 2
</a><br/>Wir multiplizieren Brüche und lernen einen uralten Algorithmus 
kennen.
</li>
<li><a href="advanced/46-fractions3.htm">46. Brüche - Teil 3
</a><br/>Wir definieren, addieren und subtrahieren Brüche.
</li>
<li><a href="advanced/47-fractions4.htm">47. Brüche - Teil 4
</a><br/>Wir kombinieren Brüche mit Ganzzahlen.
</li>
<li><a href="advanced/48-beyond_python.htm">48. Jenseits von Python</a><br/>
Wir suchen Quadratwurzeln von Brüchen und stoßen dabei auf überraschende
Probleme, die wir nicht mit Python lösen können.
</li>
<li><a href="advanced/49-input.htm">49. Reeborg asks you: to do</a></li>
<li><a href="advanced/50-images.htm">50. Using custom made images: to do</a></li>
<li><a href="advanced/51-editor.htm">51. Using the built-in editor: to do</a></li>
<li><a href="advanced/52-lightning.htm">52. Using Lightning Compiler: the basics: to do</a></li>
<li><a href="advanced/53-lightning2.htm">53. Using Lightning Compiler: doctests: to do</a></li>
</ul>

<h3 class="section">Anhang</h3>
<p>
<a href="summary.htm">Übersicht der Reeborg-Steuerung</a><br/>
<a href="about.htm">Über RUR-PLE</a> <br/>
<a href="acknowledgements.htm">Danksagungen</a><br/>
</p>

</body>
</html>
